/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package general;

import appClientHandler.AUPCustomerBean;
import appClientHandler.HandlerRemote;

import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 *
 * eCOM - Adopte un Presta - Mars-Avril 2013
 * @author Kheira, Jef, William, Tuan-Long
 */

// CLasse servant à se connecter au HandlerRemote, qui à son tour utilisera les DAO locaux.
public class ConnexionEJB 
{
    /**
     * Permet de récupérer le contexte à partir des paramètres d'une connexion à un serveur d'EJB
     * @param serverName le nom du serveur ( localhost par exemple )
     * @return
     * @throws NamingException
     */
    private static InitialContext serverConnect(String serverName) throws NamingException
    {
        Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
        props.setProperty("java.naming.factory.initial",
                    "com.sun.enterprise.naming.SerialInitContextFactory");
        props.setProperty("java.naming.factory.url.pkgs",
                    "com.sun.enterprise.naming");
        props.setProperty("java.naming.factory.state",
                    "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
        props.setProperty("org.omg.CORBA.ORBInitialHost", "127.0.0.1");
        props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

        return new InitialContext(props);
    }

    /**
     * Permet d'obtenir le HandlerRemote à partir du contexte du serveur d'EJB
     * @param serverName
     * @return
     * @throws NamingException
     */
    public static AUPCustomerBean getHandler(String serverName) throws NamingException
    {
        InitialContext ctx = serverConnect(serverName);
        //InitialContext ctx = new InitialContext();
        AUPCustomerBean gest = (AUPCustomerBean) ctx.lookup("appClientHandler.AUPCustomerBean");
        //HandlerRemote gest = (HandlerRemote) new InitialContext().lookup("appClientHandler.HandlerRemote");
        return gest;
    }
}
